#include <string>

template<class T>
class PropertyDemo {
public:
    void Set(const T &t);
    T Get();

private:
    T val;
};

template<class T>
void Print(const T &t);

class NormalDemo {
public:
    template<class T>
    static void PrintHash(const T &t);

    template<class T>
    void PrintDefaultHash();

    template<class T>
    T GetDefault();
};
